unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Image1: TImage;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
  Back, Picture: TBitMap;
  BackRct: TRect;
  x,y,a,b: integer;
  W,H: integer;
  c : integer;

procedure TForm1.FormCreate(Sender: TObject);
begin
c:=0;

Image1.AutoSize:=False;

Back:=TBitmap.Create;
Picture:=TBitMap.Create;

Back.LoadFromFile('C:\Documents and Settings\\ \.bmp');
Image1.Width:=Back.Width;
Image1.Height:=Back.Height;
Image1.Canvas.Draw(0,0,Back);

Picture.LoadFromFile('C:\Documents and Settings\\ \123.bmp');
W:=Picture.Width;
H:=Picture.Height;

Picture.Transparent:= True;
Picture.TransparentColor:=Picture.Canvas.Pixels[1,1];

x:=100;
y:=100;

BackRct:=Bounds(x,y,W,H);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.FormClose(Sender: TObject;
                            var Action: TCloseAction);
begin
  Back.Free;
  Picture.Free;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Image1.Canvas.CopyRect(BackRct,Back.Canvas,BackRct);
 if c=1 then x:=x+50;
if x>Image1.Width then x:=-W;
BackRct:=Bounds(x,y,W,H);
Image1.Canvas.Draw(x,y,Picture);
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case key of ord('w'):
    c:=1;
  end;
end;

end.